package bm.com.project.server.common.service;


import bm.com.framework.common.resp.Result;
import bm.com.framework.common.resp.ResultVO;
import bm.com.framework.web.core.dto.BmSysUserTokenDTO;
import bm.com.project.server.common.dto.BmSysChangeOrgReqDTO;
import bm.com.project.server.common.dto.BmSysLoginReqDTO;
import bm.com.project.server.common.dto.BmSysSignInReqDTO;

public interface LoginService {

    /**
     * 用户注册
     * @param sysSignInReqDTO
     * @return
     */
    Result<BmSysUserTokenDTO> signIn(BmSysSignInReqDTO sysSignInReqDTO);

    /**
     * 用户登陆
     * @param sysLoginReqDTO
     * @return
     */
    Result<BmSysUserTokenDTO> login(BmSysLoginReqDTO sysLoginReqDTO);

    /**
     * 用户退出功能
     * @param bmSysUserTokenDTO
     * @return
     */
    boolean loginOut(BmSysUserTokenDTO bmSysUserTokenDTO);

    /**
     * 用户切换组织
     * @param bmSysChangeOrgReqDTO
     * @return
     */
    Result<BmSysUserTokenDTO> changeOrg(BmSysChangeOrgReqDTO bmSysChangeOrgReqDTO, String token);

    /**
     * 用户切换组织
     * @param sysLoginReqDTO
     * @return
     */
    public ResultVO getOrgLIst(BmSysLoginReqDTO sysLoginReqDTO);

}
